1. Field of the Invention
The present invention relates to programmable integrated circuits. More particularly, the present invention relates to field-programmable-gate-array (FPGA) integrated circuits and to non-volatile lookup tables for use in such integrated circuits.
2. The Prior Art
Programmable integrated circuits such as FPGA integrated circuits are known in the art. An emerging trend has been to employ non-volatile memory elements in FPGA integrated circuits.
Some FPGA integrated circuits employ lookup tables (LUTs) to implement programmable logic functions. Such LUTs typically have some number n inputs coupled to the n address inputs of a 2n-to-1 multiplexer, while 2n configuration bits are typically coupled to the 2n data inputs of the multiplexer. LUTs built in this particular style typically use volatile-memory technology such as SRAM as the configuration bits. The advantage of such an arrangement is simplicity of logic function generation by means of the LUT and ease of reprogramming by means of the volatile-memory technology. The disadvantage of this approach is that volatile-memory technology requires that the FPGA be reprogrammed periodically, particularly after a system power up. Volatile-memory based FPGA integrated circuits that use LUT technology are available from, for example, Xilinx of San Jose, Calif.
Other FPGA integrated circuits employ multiplexer-based modules to implement programmable logic functions. Such modules are typically built around a 2M-to-1 multiplexer with M address inputs and 2M data inputs and can be used, in conjunction with an inverter module, to implement (as a subset of the total functionality) any logic function of M+1 variables. Since all of the M+1 inputs are interchangeable, this subset of the functionality is like a LUT. Multiplexer-based modules built in this style typically use antifuses as the programmable technology. The advantage of this approach is the non-volatility of the antifuse element. The disadvantage is the one-time programmability of the antifuse which precludes reprogramming the FPGA. Antifuse based FPGA integrated circuits that use multiplexer-based modules are available from, for example, Actel of Mountain View, Calif.
Thus, non-volatile memory elements which are reprogrammable may be advantageously employed in LUT-based FPGA integrated circuits, having all of the advantages and none of the disadvantages described above.